home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / java / security / BasicPermission.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  1.9 KB  |  100 lines

  1. package java.security;
  2.  
  3. import java.io.IOException;
  4. import java.io.ObjectInputStream;
  5. import java.io.Serializable;
  6.  
  7. public abstract class BasicPermission extends Permission implements Serializable {
  8.    private static final long serialVersionUID = 6279438298436773498L;
  9.    private transient boolean wildcard;
  10.    private transient String path;
  11.    private transient boolean exitVM;
  12.  
  13.    private void init(String var1) {
  14.       if (var1 == null) {
  15.          throw new NullPointerException("name can't be null");
  16.       } else {
  17.          int var2 = var1.length();
  18.          if (var2 == 0) {
  19.             throw new IllegalArgumentException("name can't be empty");
  20.          } else {
  21.             char var3 = var1.charAt(var2 - 1);
  22.             if (var3 == '*' && (var2 == 1 || var1.charAt(var2 - 2) == '.')) {
  23.                this.wildcard = true;
  24.                if (var2 == 1) {
  25.                   this.path = "";
  26.                } else {
  27.                   this.path = var1.substring(0, var2 - 1);
  28.                }
  29.             } else if (var1.equals("exitVM")) {
  30.                this.wildcard = true;
  31.                this.path = "exitVM.";
  32.                this.exitVM = true;
  33.             } else {
  34.                this.path = var1;
  35.             }
  36.  
  37.          }
  38.       }
  39.    }
  40.  
  41.    public BasicPermission(String var1) {
  42.       super(var1);
  43.       this.init(var1);
  44.    }
  45.  
  46.    public BasicPermission(String var1, String var2) {
  47.       super(var1);
  48.       this.init(var1);
  49.    }
  50.  
  51.    public boolean implies(Permission var1) {
  52.       if (var1 != null && var1.getClass() == this.getClass()) {
  53.          BasicPermission var2 = (BasicPermission)var1;
  54.          if (this.wildcard) {
  55.             if (var2.wildcard) {
  56.                return var2.path.startsWith(this.path);
  57.             } else {
  58.                return var2.path.length() > this.path.length() && var2.path.startsWith(this.path);
  59.             }
  60.          } else {
  61.             return var2.wildcard ? false : this.path.equals(var2.path);
  62.          }
  63.       } else {
  64.          return false;
  65.       }
  66.    }
  67.  
  68.    public boolean equals(Object var1) {
  69.       if (var1 == this) {
  70.          return true;
  71.       } else if (var1 != null && var1.getClass() == this.getClass()) {
  72.          BasicPermission var2 = (BasicPermission)var1;
  73.          return this.getCanonicalName().equals(var2.getCanonicalName());
  74.       } else {
  75.          return false;
  76.       }
  77.    }
  78.  
  79.    public int hashCode() {
  80.       return this.getCanonicalName().hashCode();
  81.    }
  82.  
  83.    public String getActions() {
  84.       return "";
  85.    }
  86.  
  87.    public PermissionCollection newPermissionCollection() {
  88.       return new BasicPermissionCollection();
  89.    }
  90.  
  91.    private void readObject(ObjectInputStream var1) throws IOException, ClassNotFoundException {
  92.       var1.defaultReadObject();
  93.       this.init(this.getCanonicalName());
  94.    }
  95.  
  96.    final String getCanonicalName() {
  97.       return this.exitVM ? "exitVM.*" : this.getName();
  98.    }
  99. }
  100.